This invention relates to the World Wide Web and, more particularly, to the retrieval of Web content from Web sites.
Web browsers, such at the Netscape(copyright) browser and the Microsoft Internet Explorer(copyright) browser, enable a user to xe2x80x9cbookmarkxe2x80x9d a Web site that he or she is likely to frequently xe2x80x9cvisitxe2x80x9d. By clicking on an appropriate button, the URL of the Web page the browser has last accessed is stored, thereby enabling the user to return to that page at some later time by merely clicking on a representation of that Web page in a bookmark file that is easily accessed from the browser program. Advantageously, the bookmark provides a shortcut to that page and the user does not have to either type in the URL or locate a link to that page from another site. The user can thus quickly visit each of his favorite Web sites/pages by merely clicking on those Web page names in a pull-down bookmark or favorites menu on his browser.
Recent developments in Web technology such as the inclusion of scripting languages, frames, and the growth of dynamic content, have made the process of retrieving Web content more complicated. For example, frames-based Web sites hide the URLs of pages displayed in frames, thus preventing the user from bookmarking the corresponding page. Also, some Web sites require the user to go through a series of interactive steps in order to eventually reach a page that contains data that is of interest to the user. For example, in order to obtain balance information in one""s retirement account over the Internet the user must first access the home page of his retirement account manager""s Web site. The user must then login at this Web site, and fill out a form that requests user information such as the user""s identity via his social security number and a password. Only after that information is uploaded and verified at the Web site, is the user""s current balance information provided on a Web page created for that user. Current browser technology does not enable creation of a shortcut to such data. Many other examples could be given that require selection by one or more clicks on a button, link traversals, and/or input of information and/or selections from menus by the user before the user is presented with the information he really wants to obtain.
The present invention allows users to create smart bookmarks, i.e., shortcuts to Web pages that require multiple steps to be retrieved, or for which the user desires to successively retrieve multiple pages. The invention includes techniques for creating, storing and retrieving a smart bookmark. In accordance with the invention, a smart bookmark is a stored sequence of browsing steps performed by a user, that have been recorded in a transparent manner and can be played later when the smart bookmark is accessed. Such later playback can automatically and sequentially step through each browsing step until the last page is retrieved, or it can wait at each or selected page Web pages to await a user input to continue with the sequence. This mechanism thus allows users to save shortcuts to Web pages that do not have a well-defined, or static, URL, and/or to program a sequence of Web pages that he wants to retrieve on a regular basis. Advantageously, the smart bookmark can either be saved locally, allowing the user who created the bookmark to later retrieve it, or it can be stored at a remote server in the network at a location accessible to other users.
In the specific embodiment of the present invention, when a user elects to create a smart bookmark, a Java recorder-player applet is invoked that starts the recording process. All recording is performed in a transparent fashion, thus requiring no special action by the user besides his or her (hereinafter his for brevity""s sake) usual browsing activities. An empty smart bookmark is created and the user is prompted for the starting URL address of the first Web page in the sequence of the multi-step sequence that comprises the smart bookmark. When the requested Web page is loaded into the user""s browser, the page is modified to attach Javascript-coded event handlers to each element in the page associated with actions that the user may take on that page. Thus, for example, an event handler is attached to all link traversals, form submissions and button clicks that the user may make from that first Web page. These Javascript-coded event handlers function to notify the Java recorder-player applet upon a user""s action. Thus, each user""s click, link traversal to another URL, or input of values to those elements on a form submission are automatically recorded as part of the smart bookmark under creation. Advantageously, to protect sensitive information which the user may not want stored directly in the smart bookmark, such as, for example, a user""s credit card number, values of selected elements can be stored in either plain text, in an encrypted form, or not stored at all. For the latter case, during later playback of the smart bookmark, the user is prompted to input any non-stored element values as they are needed.
After the user clicks on a button, initiates a link traversal, or submits a form, and the user""s action is recorded by the Java applet as part of the smart bookmark, the responsive Web page to such user action is loaded into the browser and the process continues with event handlers then being associated with each element on that new page. The URL of that new Web page and the responsive user actions are recorded, and the process continues. When the last Web page of the desired sequence is loaded, the user saves the smart bookmark by creating an HTML file that embeds the recorder-player Java applet, or reference to such applet, together with data that represents the smart bookmark steps. Alternatively, a file that contains only the smart bookmark steps can be saved.
The HTML file is accessed when the user who created the smart bookmark, or another user, wants to retrieve the last or an intermediate Web page reached through the sequence of steps stored in the smart bookmark. When that HTML file is accessed, the recorder-player Java applet embedded in the file, or referenced in the file, is initiated to read in the bookmark data. The Web page corresponding to the URL of the first part of the smart bookmark is retrieved and optionally displayed on the user""s browser. The next part of the smart bookmark file is then read. If the next part is a link traversal, a matching function based on the recorded link position, text and URL in the smart bookmark, along with corresponding properties of links present in the last Web page retrieved in the previous step during playback of the smart bookmark, is used to determine the best match for the link that should now be traversed for the current step. This makes the play functionality more robust with respect to changes in the Web page structure that may have occurred between the time the smart bookmark was created and the current time when the smart bookmark is being played. The page corresponding the best matching URL is then retrieved and optionally displayed in the target window that may be specified in the bookmark. If the next part of the smart bookmark file is a form submission, a similar matching function is used to determine which form to submit. The value of each element in that form is determined from either the value stored in the bookmark data for that element, is decrypted from the value stored in the bookmark data, or is determined from a user""s input in a pop-up window that requests input by the user of that element value. Certain elements retain the values set by the server generating that Web page. Once all the element values of the form submission have been determined, the form is automatically submitted to the Web server requesting it, and the resultant Web page is optionally displayed by the browser to the user. This resultant Web page may be the ultimate and final destination of the smart bookmark, or it itself may include link traversals, or include another form, the data associated with either being determined from the smart bookmark data and/or user input until, eventually, the Web page associated with the last step of the smart bookmark is displayed by the browser.
During playback, as each part of the smart bookmark is retrieved, it can either stop as each Web page is read, to await a user""s input to continue, it can automatically and sequentially process each part, without awaiting a user""s input, or can await a user""s input at selected parts and automatically process other parts. Further, during playback, the user can be given the option to pause at each or selected parts, and then later resume either step-by-step or automatic sequential processing.
If the file that has been saved contains only data corresponding to the recorded browsing steps, a user can start a player applet or application, load the desired file, and instruct the applet or application to play the steps in the manner just described.
The present invention can be implemented as a client-based operation where the smart bookmark recorder-player Java applet, individual recorder and player applets, or a single or separate recorder and player applications are embodied on the user""s local machine together with a local smart bookmark database that stores one or a plurality of recorded smart bookmarks and which can be accessed by the user. Alternatively, the present invention can be implemented on Web server where the smart bookmark recorder-player Java applet, separate applets, or applications reside and which can be downloaded by a user for creating and playing a smart bookmark. When created, the bookmark can be stored locally on the user""s own machine, or can be uploaded to that same Web server in the network for storage thereon, or to any other Web server, where it can also be stored. In order to replay a locally stored bookmark, if already downloaded, the recorder-player Java applet, separate player applet, or application, is invoked and the smart bookmark is played locally. If not already downloaded, the applet or application can be downloaded and the smart bookmark played. If the smart bookmark is stored on a Web server, it can be downloaded onto the user""s local machine and played locally using a locally stored or downloaded recorder-player applet, player applet, or application. Alternatively, the smart bookmark can be played on the server where it is stored and the results sent back to the requesting user.